// 存取器：让我们可以有效地控制对 对象中成员进行访问，通过getters和setters来进行操作
(() => {
  // 外部可以传入姓氏和名字数据，同时使用set和get控制姓名的数据，外部也可以进行修改操作
  class Person {
    firstName: string; // 姓氏
    lastName: string; // 名字
    constructor(firstName: string, lastName: string) {
      this.firstName = firstName;
      this.lastName = lastName;
    }
    // 读取器----负责读取数据
    get fullName() {
      console.log("get中...");
      return this.firstName + "_" + this.lastName;
    }
    // 设置器----负责设置（修改）数据
    set fullName(val) {
      let names = val.split("_");
      this.firstName = names[0];
      this.lastName = names[1];
    }
  }
  const person = new Person("东方", "不败");
  console.log(person.fullName);
  person.fullName = "诸葛_孔明";
  console.log(person.fullName);
})();
